package com.lry.basic.juc;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;



/**
 * @author:刘仁有
 * @desc:
 * @email:953506233@qq.com
 * @data:2019/7/2
 */
// 单线程/任务线程 优先队列最小平衡堆/任务队列
    //不适合多任务调度 ，不适合耗时时间长的任务
    //适用于短时间单作业，最佳实践，在run里面手动捕捉异常
    //用调度的线程池代替 多线程
public class TestTimer {
    public static void main(String[] args) throws ParseException {
        MyTimer timer = new MyTimer();

        SimpleDateFormat fTime = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = fTime.parse("2019/7/6 10:50:00");

        timer.scheduleAtFixedRate(new TimerTask(){
            public void run()
            {
                System.out.println("exec task");
            }
        },date,3*60*1000);


        /*Calendar cal = Calendar.getInstance();
        cal.set(Calendar.HOUR_OF_DAY,10);
        cal.set(Calendar.MINUTE,15);
        cal.set(Calendar.SECOND,10);
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                System.out.println(1);
            }
        },cal.getTime(),3000);*/

//        final long start = System.currentTimeMillis();
//        timer.schedule(new TimerTask() {
//            @Override
//            public void run() {
//                System.out.println("time1:"+ (System.currentTimeMillis()-start));
//                try {
//                    //模拟耗时操作
//                    Thread.sleep(3000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }
//        },1000);
//
//        timer.schedule(new TimerTask() {
//            @Override
//            public void run() {
//                System.out.println("time2:"+ (System.currentTimeMillis()-start));
//            }
//        },2000);
    }
}
